package com.pms.service;

import com.pms.dto.*;
import com.pms.entity.Community;
import com.pms.entity.User;
import com.pms.result.PageResult;

import java.util.List;

public interface UserService {

    /**
     * 管理员登录
     * @param userLoginDTO
     * @return
     */
    User login(UserLoginDTO userLoginDTO);

    /**
     * 注册
     * @param userRegisterDTO
     */
    void setUser(UserRegisterDTO userRegisterDTO);

    /**
     * 动态修改信息
     * @param userUpdateDTO
     */
    void update(UserUpdateDTO userUpdateDTO);

    /**
     * 根据id查询
     * @param id
     * @return
     */
    User getUserById(Integer id);

    /**
     * 修改密码
     * @param passwordDTO
     */
    void updatePassword(PasswordDTO passwordDTO);

    /**
     * 根据用户名查询登录用户信息
     * @param username
     * @return
     */
    User getByName(String username);

    /**
     * 根据id查询登录用户信息
     * @param userId
     * @return
     */
    User getById(Integer userId);

    /**
     * 用户分页查询
     * @param userPageQueryDTO
     * @return
     */
    PageResult page(UserPageQueryDTO userPageQueryDTO);

    /**
     * 批量删除
     * @param ids
     */
    void deleteBatch(List<Integer> ids);

    /**
     * 管理员修改用户信息
     * @param userAdminUpdateDTO
     */
    void updateByAdmin(UserAdminUpdateDTO userAdminUpdateDTO);
}
